%% This config file is the very basic config to compile emqx
%% This allows emqx to be used as a dependency for other applications
%% such as emqx module/plugin develpments and tests.

%% With the help of EMQ's rebar3 fork, the config is extended
%% with rebar.config.erl module. Final result is written to
%% rebar.config.rendered if environment DEBUG is set.

{edoc_opts, [{preprocess,true}]}.
{erl_opts, [warn_unused_vars,warn_shadow_vars,warn_unused_import,
            warn_obsolete_guard,compressed,
            {d, snk_kind, msg}]}.

{extra_src_dirs, [{"etc", [{recursive,true}]}]}.

{xref_checks,[undefined_function_calls,undefined_functions,locals_not_used,
              deprecated_function_calls,warnings_as_errors,deprecated_functions]}.

{dialyzer, [
    {warnings, [unmatched_returns, error_handling, race_conditions]},
    {plt_location, "."},
    {plt_prefix, "emqx_dialyzer"},
    {plt_apps, all_apps},
    {statistics, true}
   ]
}.

{cover_opts, [verbose]}.
{cover_export_enabled, true}.
{cover_excl_mods, [emqx_exproto_pb, emqx_exhook_pb]}.

{provider_hooks, [{pre, [{release, {relup_helper, gen_appups}}]}]}.

{post_hooks,[]}.

{erl_first_files, ["src/emqx_logger.erl", "src/emqx_rule_actions_trans.erl"]}.

{deps,
    [
        {gpb, "4.11.2"} %% gpb only used to build, but not for release, pin it here to avoid fetching a wrong version due to rebar plugins scattered in all the deps
        , {ehttpc, {git, "https://gitee.com/fastdgiot/ehttpc", {tag, "0.1.14"}}}
        , {gproc, {git, "https://gitee.com/fastdgiot/gproc", {tag, "0.8.0"}}}
        , {jiffy, {git, "https://gitee.com/fastdgiot/jiffy", {tag, "1.0.5"}}}
        , {cowboy, {git, "https://gitee.com/fastdgiot/cowboy", {tag, "2.8.2"}}}
        , {esockd, {git, "https://gitee.com/fastdgiot/esockd", {tag, "5.8.0"}}}
        , {ekka, {git, "https://gitee.com/fastdgiot/ekka", {tag, "0.8.1.7"}}}
        , {gen_rpc, {git, "https://gitee.com/fastdgiot/gen_rpc", {tag, "2.5.1"}}}
        , {cuttlefish, {git, "https://gitee.com/fastdgiot/cuttlefish", {tag, "v4.3.7"}}}
        , {minirest, {git, "https://gitee.com/fastdgiot/minirest", {tag, "0.3.7"}}}
        , {ecpool, {git, "https://gitee.com/fastdgiot/ecpool", {tag, "0.5.2"}}}
        , {replayq, {git, "https://gitee.com/fastdgiot/replayq", {tag, "0.3.2"}}}
        , {pbkdf2, {git, "https://gitee.com/fastdgiot/erlang-pbkdf2.git", {branch, "2.0.4"}}}
        , {emqtt, {git, "https://gitee.com/fastdgiot/emqtt", {tag, "1.2.3.1"}}}
        , {rulesql, {git, "https://gitee.com/fastdgiot/rulesql", {tag, "0.1.2"}}}
        , {recon, {git, "https://gitee.com/fastdgiot/recon", {tag, "2.5.1"}}}
        , {observer_cli, "1.6.1"} % NOTE: depends on recon 2.5.1
        , {getopt, "1.0.1"}
        , {snabbkaffe, {git, "https://gitee.com/fastdgiot/snabbkaffe.git", {tag, "0.12.2"}}}
        , {ejdbc, {git, "https://gitee.com/fastdgiot/ejdbc", {tag, "1.0.1"}}}
        , {gun, {git, "https://gitee.com/fastdgiot/gun", {tag, "1.3.5"}}}
        , {gen_smtp, {git, "https://gitee.com/fastdgiot/gen_smtp", "1.1.2"}}
    ]}.

{xref_ignores,
 [ %% schema registry is for enterprise
  {emqx_schema_registry,get_all_schemas,0},
  {emqx_schema_api,format_schema,1},
  {emqx_schema_api,make_schema_params,1},
  {emqx_schema_parser,decode,3},
  {emqx_schema_parser,encode,3},
  {emqx_schema_registry,add_schema,1},
  emqx_exhook_pb, % generated code for protobuf
  emqx_exproto_pb % generated code for protobuf
]}.
